#include <MC/HitResult.hpp>

FaceID HitResult::getFacing() {
    return dAccess<FaceID>(this, 28);
}
Vec3 HitResult::getPos() {
    return dAccess<Vec3>(this, 44);
}
bool HitResult::isHitLiquid() {
    return dAccess<bool>(this, 80);
}
//LIAPI bool HitResult::isEntity() {
//    return getHitResultType() == HitResultType::ENTITY;
//}
//LIAPI bool HitResult::isTile() {
//    return getHitResultType() == HitResultType::TILE;
//}
BlockPos HitResult::getBlockPos() {
    return dAccess<BlockPos>(this, 32);
}
BlockPos HitResult::getLiquidPos() {
    return dAccess<BlockPos>(this, 84);
}
FaceID HitResult::getLiquidFacing() {
    return dAccess<FaceID>(this, 81);
}
//LIAPI Vec3 HitResult::getLiquidHitPos();
//LIAPI HitResultType HitResult::getHitResultType() {
//    return dAccess<HitResultType>(this, 24);
//}

//static_assert(offsetof(HitResult, endBpos) == 32);
//static_assert(offsetof(HitResult, unk64) == 64);
//static_assert(offsetof(HitResult, unk81) == 81);
//static_assert(offsetof(HitResult, indirectHit) == 108);
//static_assert(sizeof(HitResult) == 112);